Present day computer systems generally require intricate, low-level, time consuming operations to test hardware for proper operation. Computers employ registers which perform operations on strings of bits and these registers are used during testing procedures. Most computers group interconnected shift registers into scan rings, to aid in the testing. Generally, when a user needs to make a correction to a string of bits stored on a memory chip or the like, the entire string of bits needs to be analyzed, i.e., thousands of bits need to be dumped into a scan ring and individually analyzed.
It is desirable to have a system that employs a less cumbersome manner of identifying and correcting defective bits retrieved from hardware elements.
With most present day computer systems, in order for a user to check memory and CPU board operation, a low-level machine code program would have to be written. This entails listing every shift register and other hardware command individually and storing it in a file to subsequently be carried out by the computer. Not only does this require an exhaustive effort on the part of the user to write the code, but the computer system would be utilized for only this purpose during operation of this routine.
It is desirable to both have a powerful high level language which enables users to create hardware testing procedures simply, as well as one that operates from a command line, performing commands individually as typed next to a prompt. This would both save time and aggravation on the part of the user.
With most present day hardware testing procedures, strings of bits are loaded into scan ring registers and viewed serially. To return to a bit just previously viewed, the scan ring would have to be rotated a complete 360 degrees. This delay could become problematic if the step had to be repeated numerous times, which is not unlikely.
It is further desirable to reduce the amount of time used to scan bits in a scan ring.